package utils

import (
	"com.yy.api/common/logger"
	"encoding/json"
)

func ObjToJsonStr[T any](obj T) (string, bool) {
	j, err := json.Marshal(obj)
	if err != nil {
		logger.Default.Errorf("serialise object failed,object:%v", obj)
		return "", false
	}
	return string(j), true
}

func ParseJsonStrToObj[T any](jsonStr string) (T, bool) {
	var obj T
	if jsonStr == "" {
		logger.Default.Errorf("invalid input!")
		return obj, false
	}
	err := json.Unmarshal([]byte(jsonStr), &obj)
	if err != nil {
		logger.Default.Errorf("deserialize object failed,jsonStr:%s,error:%v", jsonStr, err)
		return obj, false
	}
	return obj, true
}
